package javax.realtime;

public abstract interface Schedulable extends Runnable {
    public abstract boolean addIfFeasible();

    public abstract boolean addToFeasibility();

    public abstract MemoryParameters getMemoryParameters();

    public abstract ProcessingGroupParameters getProcessingGroupParameters();

    public abstract ReleaseParameters getReleaseParameters();

    public abstract Scheduler getScheduler();

    public abstract SchedulingParameters getSchedulingParameters();

    public abstract boolean removeFromFeasibility();

    public abstract boolean setIfFeasible(
            ReleaseParameters paramReleaseParameters,
            MemoryParameters paramMemoryParameters);

    public abstract boolean setIfFeasible(
            ReleaseParameters paramReleaseParameters,
            MemoryParameters paramMemoryParameters,
            ProcessingGroupParameters paramProcessingGroupParameters);

    public abstract boolean setIfFeasible(
            ReleaseParameters paramReleaseParameters,
            ProcessingGroupParameters paramProcessingGroupParameters);

    public abstract boolean setIfFeasible(
            SchedulingParameters paramSchedulingParameters,
            ReleaseParameters paramReleaseParameters,
            MemoryParameters paramMemoryParameters);

    public abstract boolean setIfFeasible(
            SchedulingParameters paramSchedulingParameters,
            ReleaseParameters paramReleaseParameters,
            MemoryParameters paramMemoryParameters,
            ProcessingGroupParameters paramProcessingGroupParameters);

    public abstract void setMemoryParameters(
            MemoryParameters paramMemoryParameters);

    public abstract boolean setMemoryParametersIfFeasible(
            MemoryParameters paramMemoryParameters);

    public abstract void setProcessingGroupParameters(
            ProcessingGroupParameters paramProcessingGroupParameters);

    public abstract boolean setProcessingGroupParametersIfFeasible(
            ProcessingGroupParameters paramProcessingGroupParameters);

    public abstract void setReleaseParameters(
            ReleaseParameters paramReleaseParameters);

    public abstract boolean setReleaseParametersIfFeasible(
            ReleaseParameters paramReleaseParameters);

    public abstract void setScheduler(Scheduler paramScheduler);

    public abstract void setScheduler(Scheduler paramScheduler,
            SchedulingParameters paramSchedulingParameters,
            ReleaseParameters paramReleaseParameters,
            MemoryParameters paramMemoryParameters,
            ProcessingGroupParameters paramProcessingGroupParameters);

    public abstract void setSchedulingParameters(
            SchedulingParameters paramSchedulingParameters);

    public abstract boolean setSchedulingParametersIfFeasible(
            SchedulingParameters paramSchedulingParameters);
}